
package booebill;

import java.applet.*;
import java.net.*;

/**
 *
 * @author kaverna
 * @author lagarto
 *
 * Classe responsavel por cuidar da musica e dos efeitos sonoros que são executados no decorrer do jogo, facilitando
 * chamadas ao audio.
 */
public class EfeitosSonoros
{
    
    private AudioClip Efeitos[] = new AudioClip[10];
    //Vetor de Som com a quantidade de efeitos/musica
    private boolean bSomAtivo = true;
    //Boolean para desligar totalmente o som.
    
    
    public EfeitosSonoros()
    {
        for(int i = 0;i<Efeitos.length;i++)
        {
            try
            {
                URL u;
                switch (i)
                {
                    //Se voce quiser adicionar ou mudar algum som, sinta-se a vontade
                    case 0: u = this.getClass().getResource("/beep.au");
                    break;                //Mouse sobre botao
                    case 1: u = this.getClass().getResource("/BotaoPressionado.wav");
                    break;                //Botao pressionado
                    case 2: u = this.getClass().getResource("/tiro.wav");
                    break;                //Tiro do Boo ou do Bill =)
                    case 3: u = this.getClass().getResource("/musica1.wav");
                    break;                //Música de fundo
                    case 4: u = this.getClass().getResource("/errou.wav");
                    break;                //Som de errando tiro
                    case 5: u = this.getClass().getResource("/bill.wav");
                    break;                //Som do Bill
                    case 6: u = this.getClass().getResource("/boo.wav");
                    break;                //Som do Boo
                    case 7: u = this.getClass().getResource("/beep.au");
                    break;                //Som X
                    case 8: u = this.getClass().getResource("/beep.au");
                    break;                //Som X
                    case 9: u = this.getClass().getResource("/beep.au");
                    break;                //Som X
                    default: u = this.getClass().getResource("/beep.au");
                    break;
                }
                
                Efeitos[i] = Applet.newAudioClip(u);
            }
            catch(Exception e)
            {
                
                System.out.println("Erro ao completar vetor de música    Efeitos["+i+"]");
            }
        }
    }
    
    /// METODOS DE SOM
    public void SomSobreBotao()
    {
        if(bSomAtivo)
        {
            Efeitos[0].stop();
            Efeitos[0].play();           
        }
    }
    public void SomBotaoPressionado()
    {
        if(bSomAtivo)
        {
            Efeitos[1].stop();
            Efeitos[1].play();
        }
    }
    public void SomTiro()
    {
        if(bSomAtivo)
        {
            Efeitos[2].stop();
            Efeitos[2].play();
            System.out.println("Som - Tiro");
        }
    }
    public void SomMusica1()
    {
        if(bSomAtivo)
        {
            Efeitos[3].stop();
            Efeitos[3].loop();
            Efeitos[3].play();
            Efeitos[3].loop();
        }
    }
    public void SomTiroErrou()
    {
        if(bSomAtivo)
        {
            Efeitos[4].stop();
            Efeitos[4].play();
        }
    }
    public void SomBill()
    {
        if(bSomAtivo)
        {
            Efeitos[5].stop();
            Efeitos[5].play();
        }
    }
    public void SomBoo()
    {
        if(bSomAtivo)
        {
            Efeitos[6].stop();
            Efeitos[6].play();
        }
    }
    
    /**
     * Desativa os efeitos sonoros para que eles não toquem mais.
     * @return retorna false;
     */
    public boolean desativarSom()
    {
        bSomAtivo = false;
        return (bSomAtivo);
    }
}

